Analizar el rendimiento de una aplicación Go(lang)

A veces, es necesario analizar el rendimiento de nuestra aplicación para que funcione más rápido o simplemente para que no se caiga después de un tiempo debido a un memory leak. Afortunadamente, Go ya incluye herramientas para depurar estos problemas de manera nativa, una de esas es el paquete pprof, el cual genera un formato estándar que puede ser interpretado por diferentes aplicaciones y hasta puede ser graficado. Para analizar este código usaremos el paquete github. [Leer más]

JSONs con múltiples tags en Go

La librería estándar para manejar JSONs en Go, encoding/json, es bastante completa y cumple su función en la mayoría de los casos. Sus funcionalidades más utilizadas son Marshal y Unmarshal, que respectivamente se encargan de convertir una esctructura de Go a su representación en JSON y viceversa. Existen, sin embargo, situaciones en las que esta librería no es suficiente. Por ejemplo, el caso en que se quieran manejar múltiples tags para una misma estructura. [Leer más]
go  json  jsoniter 

Capturar excepciones en Go

En muchos lugares vas a leer que Go no tiene excepciones. Esto no es cierto. En Go si hay excepciones, la diferencia es que se llaman panics. La razón es que desde la popularidad de Java, las excepciones ya no se usan para situaciones excepciones sino para cualquier error, y todo el tiempo hay errores. Los autores de Go querían dar a entender que las excepciones deberían ser excepcionales y por eso eligieron la palabra panic para representarlas. [Leer más]

Maneras de implementar timeouts en Go

Fallar rápido y no bloquear son conceptos muy importantes cuando implementamos arquitecturas distribuidas. Evita malgastar recursos y tener fallos en cascada que impactan todo el sistema. En un sistema robusto todo debería estar limitado: llamados externos, operaciones, número de recursos que se pueden crear, etc… Poner un tiempo máximo para las operaciones es entonces una de las cosas más importantes a tener en cuenta cuando estamos desarrollando y desafortunadamente es, a menudo, olvidado. [Leer más]
go 

Configurar VS Code para Go(lang)

Visual Studio Code es un editor de código muy bueno gracias a su ecosistema de extensiones que nos permiten extender las funcionalidades del editor según se necesite. En este artículo vamos a discutir qué extensiones nos sirven para trabajar con Go y cómo configurarlas. Extensión Go por Microsoft La extensión más importante que debemos instalar es Go. Esta extensión, mantenida por Microsoft, añade las funcionalidades más importantes al editor: IntelliSense Code Navigation Code Editing Diagnostics Testing Debugging Others Abrimos vscode. [Leer más]
code  vscode  golang  go  config